package com.xuecheng.api.content;

import com.xuecheng.api.content.teachplan.dto.TeachplanDTO;
import com.xuecheng.api.content.teachplan.dto.TeachplanMediaDTO;
import com.xuecheng.api.content.teachplan.vo.TeachplanVO;
import com.xuecheng.api.media.dto.TeachplanlMediaDTO;
import com.xuecheng.api.media.vo.BindTeachplanMediaVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

/**
 * - @author by 姜暄煊
 * - @Date 12.11
 * - @Description
 */
@Api(value = "课程计划api接口" ,tags = "课程计划信息管理api")
public interface TeachplanApi {

    @ApiOperation("根据课程id查询课程计划树型结构信息")
    @ApiImplicitParam(name = "courseId"
                    ,value = "课程id"
                    ,required = true
                    ,dataType = "Long"
                    ,paramType = "path"
    )
    TeachplanDTO queryTreeNodesByCourseId(Long courseId);


    @ApiOperation("添加和修改课程计划信息")
    @ApiImplicitParam(name = "teachplanVO"
            ,value = "课程计划信息"
            ,required = true
            ,dataType = "TeachplanVO"
            ,paramType = "body"
    )
    TeachplanDTO createOrModifyTeachPlan(TeachplanVO teachplanVO);

    @ApiOperation("删除课程计划信息")
    @ApiImplicitParam(name = "teachPlanId"
                    ,value = "课程计划id"
                    ,required = true
                    ,dataType = "Long"
                    ,paramType = "path"
    )
    void deleteById(Long teachPlanId);


    @ApiOperation("课程计划绑定媒资信息")
    TeachplanlMediaDTO associateMedia(BindTeachplanMediaVO vo);

}
